
#ifndef __PRIVATE_KEY_H
#define __PRIVATE_KEY_H

#include "Key.h"
#include "PublicKey.h"

/** Interface to the key, describing a private key from a public/private
 * asymmetric key pair. */
class PrivateKey : public virtual Key
{
   public:
      /** Compares this key to a public key to see if they make a matching
       * pair. A matching pair should be capable of taking plain data, which
       * once encrypted can be decrypted again to obtain the original data. */
      virtual int compareKeyBelongs(PublicKey *pubkey) = 0;
      int isAsymmetricKey();
};

#endif
